package org.wmq.taskschedule.algorithm;

import org.opencv.core.Mat;

import java.util.concurrent.CompletableFuture;

/**
 * 算法执行器抽象类，用于执行各种类型的算法
 */
public interface AlgorithmExecutor {
    
    /**
     * 执行算法的抽象方法
     * @param input 算法输入数据
     * @return 算法执行结果
     */
    Mat execute(Mat input);
    
    /**
     * 异步执行算法
     * @param input 算法输入数据
     * @return 包含执行结果的CompletableFuture
     */
    default CompletableFuture<Mat> executeAsync(Mat input) {
        return CompletableFuture.supplyAsync(() -> execute(input));
    }
    
}
